import axios from "axios";

const DASHSCOPE_API_KEY = 'sk-3453762acc1d469397000faedc12f4f6';

export const getInvoiceInfo = async (imageBase64) => {
    try {
        const response = await axios.post('https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions', {
            model: 'qwen-vl-max',
            messages: [
                {
                    "role": "system",
                    "content": [{"type":"text","text": `你是一个发票识别小助手，你的任务是识别这个发票图片，给出JSON的格式返回数据给我。
                    响应示例:
                    {
                        "invoice_type": "电子发票（增值税专用发票）",
                        "invoice_code": "25**********2168375",
                        "invoice_date": "20**-**-**",
                        "total_pages": "共1页第1页",
                        "buyer_info": {
                            "name": "**********",
                            "tax_id": "**********"
                        },
                        "seller_info": {
                            "name": "**********",
                            "tax_id": "**********063"
                        },
                        "items": [
                            {
                            "item_name": "二片阀*阀门龙头*不锈钢304气动球阀 DN25(双恒阀门)",
                            "specification": "Q641Y-16P",
                            "unit": "台",
                            "quantity": "4",
                            "unit_price": "1415.929203539823",
                            "amount": "5663.72",
                            "tax_rate": "13%",
                            "tax_amount": "736.28"
                            }
                        ],
                        "total_amount": "18953.10",
                        "total_tax_amount": "2463.90",
                        "total_including_tax": "21417.00",
                        "total_in_words": "贰万壹仟肆佰壹拾柒圆整",
                        "remark": "JFG2501040004",
                        "issuer": "**********"
                        }       
                        说明：
                            invoice_type: 发票类型
                            invoice_code: 发票号码
                            invoice_date: 开票日期
                            total_pages: 发票的总页数和当前页数。
                            buyer_info: 购买方信息，包括名称和统一社会信用代码。
                            seller_info: 销售方信息，包括名称和统一社会信用代码。
                            items: 商品明细，包括商品名称、规格型号、单位、数量、单价、金额、税率和税额。
                            total_amount: 不含税金额。
                            total_tax_amount: 税额。
                            total_including_tax: 含税金额（小写）。
                            total_in_words: 含税金额（大写）。
                            remark: 备注信息。
                            issuer: 开票人。 
                    #限制
                    你只能回复一段JSON格式的文本，不要回复其他多余文字。`
                }]},
                {
                    "role":"user",
                    "content": [
                        {
                            "type":"image_url",
                            "image_url": {"url": `data:image/png;base64,${imageBase64}`}
                        }
                    ]
                }
            ]
        }, {
            headers: {
                'Authorization': `Bearer ${DASHSCOPE_API_KEY}`,
                'Content-Type': 'application/json'
            }
        });

        return response.data;
    } catch (error) {
        console.error('调用 AI 接口失败:', error);
        throw error;
    }
}


export const getContractInfo = async (imageBase64) => {
    try {
        const response = await axios.post('https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions', {
            model: 'qwen-vl-max',
            messages: [
                {
                    "role": "system",
                    "content": [{"type":"text","text": `你是一个合同识别小助手，你的任务是识别这个合同图片，给出JSON的格式返回数据给我。
                    响应示例:
                    {
                    "contract_title": "采购框架协议",
                    "contract_number": "C**********",
                    "buyer": {
                        "name": "**********",
                        "registered_address": "**********"
                    },
                    "seller": {
                        "name": "**********",
                        "registered_address": "上海市，020**********"
                    },
                    "consideration": [
                        {
                        "content": "(1) 卖方为一家生产及销"
                        },
                        {
                        "content": "(2) 为本合同之目的，。"
                        },
                        {
                        "content": "(3) 【**********】及其在中国的关系企业，均希"
                        }
                    ],
                    "agreement": "因此，就买方及买方关系企业向卖方购买指定产品事宜，买、卖双方经友好协商，在平等、自愿的基础上达成协议如下：",
                    "products": [
                        {
                        "item_number": "4322443054",
                        "material_number": "0004-0015579",
                        "short_name": "不锈钢304内螺纹球阀 Q11PPL-16P DN15",
                        "quantity": "以订单为准",
                        "unit": "PC",
                        "unit_price_ex_tax": "37.1681",
                        "unit_price_including_tax": "42.0000",
                        "currency": "CNY",
                        "tax_rate": "13%",
                        "total_price": "以订单为准",
                        "total_price_including_tax": "以订单为准"
                        },
                    ],
                    "item_notes": "项目备注：【以订单为准】"
                    }
 
                        说明：
                            contract_title: 合同标题，这里是“采购框架协议”。
                            contract_number: 合同编号，部分信息被遮挡。
                            buyer: 买方信息，包括名称和注册地址（部分信息被遮挡）。
                            seller: 卖方信息，包括名称和注册地址（部分信息被遮挡）。
                            consideration: 鉴于条款，包含三个具体的条款内容。
                            agreement: 双方达成协议的概述。
                            products: 产品明细，包括项目编号、材料编号、简称、数量、计量单位、不含税单价、含税单价、货币、税率、总价和含税总价。
                            item_notes: 项目备注，这里为“【以订单为准】”。
                    #限制
                    你只能回复一段JSON格式的文本，不要回复其他多余文字。`
                }]},
                {
                    "role":"user",
                    "content": [
                        {
                            "type":"image_url",
                            "image_url": {"url": `data:image/png;base64,${imageBase64}`}
                        }
                    ]
                }
            ]
        }, {
            headers: {
                'Authorization': `Bearer ${DASHSCOPE_API_KEY}`,
                'Content-Type': 'application/json'
            }
        });

        return response.data;
    } catch (error) {
        console.error('调用 AI 接口失败:', error);
        throw error;
    }
}


export const getPaymentInfo = async (imageBase64) => {
    try {
        const response = await axios.post('https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions', {
            model: 'qwen-vl-max',
            messages: [
                {
                    "role": "system",
                    "content": [{"type":"text","text": `你是一个付款单据识别小助手，你的任务是识别这个付款单据图片，给出JSON的格式返回数据给我。
                    响应示例:
                        {
                        "document_title": "物流费用报销（运费系统对接）",
                        "basic_info": {
                            "payment_method": "银行转账",
                            "expected_payment_date": "2024/06/20"
                        },
                        "payee_account_details": [
                            {
                            "supplier_code": "**********",
                            "supplier_name": "**********",
                            "opening_bank": "**********",
                            "bank_branch_code": "**********",
                            "account_name": "**********",
                            "account_number": "**********",
                            "account_group": "**********",
                            "account_attribute": "对公",
                            "amount": "1,196.00"
                            }
                        ],
                        "unpaid_advance_details": "无数据",
                        "purchase_freight": "无数据",
                        "sales_freight": [
                            {
                            "occurrence_date": "2024/04/01",
                            "expense_category": "销售运费（运贸）",
                            "expense_subcategory": "销售汽车运费（运费）",
                            "description": "应付**********",
                            "material_category": "大豆及加工品",
                            "material_subcategory": "豆粕",
                            "tax_inclusive_amount": "1,196.00",
                            "tax_rate": "",
                            "tax_amount": "",
                            "tax_exclusive_amount": "1,196.00",
                            "cost_center": ""
                            }
                        ]
                        }
                        说明：
                        document_title: 单据标题，这里是“物流费用报销（运费系统对接）”。
                        basic_info: 基本信息，包括付款方式和期望付款日期。
                        payee_account_details: 收款方账户信息明细，包含供应商编码、供应商名称、开户行、联行号、账户名、账号、账户组、账户属性和金额。
                        unpaid_advance_details: 未清预付明细，这里显示为“无数据”。
                        purchase_freight: 采购运费，这里显示为“无数据”。
                        sales_freight: 销售运费，包含发生日期、费用大类、费用小类、摘要、物料号、物料描述、工厂、含税金额、税率、税额、不含税金额和成本中心。
                    #限制
                    你只能回复一段JSON格式的文本，不要回复其他多余文字。`
                }]},
                {
                    "role":"user",
                    "content": [
                        {
                            "type":"image_url",
                            "image_url": {"url": `data:image/png;base64,${imageBase64}`}
                        }
                    ]
                }
            ]
        }, {
            headers: {
                'Authorization': `Bearer ${DASHSCOPE_API_KEY}`,
                'Content-Type': 'application/json'
            }
        });

        return response.data;
    } catch (error) {
        console.error('调用 AI 接口失败:', error);
        throw error;
    }
}



export const getTransportInfo = async (imageBase64) => {
    try {
        const response = await axios.post('https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions', {
            model: 'qwen-vl-max',
            messages: [
                {
                    "role": "system",
                    "content": [{"type":"text","text": `你是一个运输发票识别小助手，你的任务是识别这个运输发票图片，给出JSON的格式返回数据给我。
                    响应示例:
                        {
                            "invoice_title": "电子发票（普通发票）",
                            "service_type": "货物运输服务",
                            "invoice_number": "2445**********79740",
                            "invoice_date": "2024年06月24日",
                            "buyer_info": {
                                "name": "**********",
                                "tax_id": "4A5K9P888F"
                            },
                            "seller_info": {
                                "name": "**********",
                                "tax_id": "MA5P3CLCXB"
                            },
                            "items": [
                                {
                                "item_name": "*运输服务*运输服务",
                                "unit": "",
                                "quantity": "",
                                "unit_price": "1097.25",
                                "amount": "1097.25",
                                "tax_rate": "9%",
                                "tax_amount": "98.75"
                                }
                            ],
                            "total_amount": "1097.25",
                            "total_tax_amount": "98.75",
                            "total_including_tax": "1196.00",
                            "total_in_words": "壹仟壹佰玖拾陆圆整",
                            "transport_details": {
                                "transport_tool_type": "公路运输",
                                "transport_tool_license_plate": "桂AY**********",
                                "origin": "防城港",
                                "destination": "菏泽",
                                "cargo_name": "饲料"
                            },
                            "additional_info": {
                                "buyer_address": "防城港**********",
                                "buyer_bank": "中**********",
                                "buyer_bank_account": "**********",
                                "seller_address": "南**********",
                                "seller_bank": "工行股份有限公司星光支行",
                                "seller_bank_account": "60**********",
                                "vehicle_info": "桂AY**********，汽运服务，防城港至菏泽",
                                "cargo_item": "饲料"
                            },
                            "issuer": "**********"
                            }

                        说明：
                        invoice_title: 发票标题，这里是“电子发票（普通发票）”。
                        service_type: 服务类型，这里是“货物运输服务”。
                        invoice_number: 发票号码。
                        invoice_date: 开票日期。
                        buyer_info: 购买方信息，包括名称和统一社会信用代码。
                        seller_info: 销售方信息，包括名称和统一社会信用代码。
                        items: 商品明细，包括项目名称、单位、数量、单价、金额、税率和税额。
                        total_amount: 不含税金额。
                        total_tax_amount: 税额。
                        total_including_tax: 含税金额（小写）。
                        total_in_words: 含税金额（大写）。
                        transport_details: 运输详情，包括运输工具种类、运输工具牌号、起运地、到达地和运输货物名称。
                        additional_info: 备注信息，包括购买方地址、购买方开户银行、购买方银行账号、销售方地址、销售方开户银行、销售方银行账号、车辆信息和货物品名。
                        issuer: 开票人。
                    #限制
                    你只能回复一段JSON格式的文本，不要回复其他多余文字。`
                }]},
                {
                    "role":"user",
                    "content": [
                        {
                            "type":"image_url",
                            "image_url": {"url": `data:image/png;base64,${imageBase64}`}
                        }
                    ]
                }
            ]
        }, {
            headers: {
                'Authorization': `Bearer ${DASHSCOPE_API_KEY}`,
                'Content-Type': 'application/json'
            }
        });

        return response.data;
    } catch (error) {
        console.error('调用 AI 接口失败:', error);
        throw error;
    }
}